package cn.com.playerlyric.lrc2;

import android.media.MediaPlayer;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

import cn.com.playerlyric.R;

public class LrcActivity2 extends AppCompatActivity {

    private MLrcView mLrc;
    private MediaPlayer mPlayer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_lrc2);
        // 歌词路径
        String lrc = getSDCardPath() + "/ubaby/lrc/" + "许茹芸-独角戏.lrc";

        mLrc = (MLrcView) findViewById(R.id.lrc);
        // 设置背景图片
        // 可以选择不设置
        // 最好是在真个屏幕设置该图片
        // 那样更好看
        //mLrc.setBackground(BitmapFactory.decodeFile(mDir + "1.png"));

        Log.e("mTag", "path:" + lrc);

        mPlayer = new MediaPlayer();
        mPlayer = MediaPlayer.create(this, R.raw.djx);
        mPlayer.setOnPreparedListener(new PreparedListener());

        mLrc.setLrcPath(lrc);
    }

    public static String getSDCardPath() {
        return Environment.getExternalStorageDirectory().getAbsolutePath();
    }

    private class PreparedListener implements MediaPlayer.OnPreparedListener {
        @Override
        public void onPrepared(MediaPlayer mp) {

            mPlayer.start();
            new Thread(new Runnable() {
                @Override
                public void run() {
                    // 当歌曲还在播放时
                    // 就一直调用changeCurrent方法
                    // 虽然一直调用， 但界面不会一直刷新
                    // 只有当唱到下一句时才刷新
                    while (mPlayer.isPlaying()) {
                        // 调用changeCurrent方法， 参数是当前播放的位置
                        // LrcView会自动判断需不需要下一行
                        mLrc.changeCurrent(mPlayer.getCurrentPosition());

                        // 当然这里还是要睡一会的啦
                        try {
                            Thread.sleep(100);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }).start();
        }
    }
}
